DQL Strict Mode
DQL_STRICT_MODE=false
), Ditto is more flexible and will infer the CRDT type based on the document’s shape:Differ
API for calculating diffs between query results.
This API can be used with a store observer to understand how its results change
over successive callbacks. The Differ
API provides a way to track changes in
the data and can be used to optimize data synchronization and conflict resolution.Differ API documentation.Feature | Description | Example |
---|---|---|
UNSET clause | Remove fields from documents | UPDATE orders UNSET items.abc WHERE _id = 'my-id' |
CAST function | Explicitly convert between data types | SELECT * FROM products WHERE CAST(price AS INT) > 10 |
USE IDS clause | Direct document retrieval by ID | SELECT * FROM products USE IDS ['123', '456'] |
SIMILAR TO | Pattern matching expressions | SELECT * FROM products WHERE name SIMILAR TO '%phone%' |
Runtime expressions | Use expressions in object/array construction | UPDATE products SET metadata = { 'updated_at': current_timestamp() } |
Counters | Support for legacy compatible counter type | UPDATE products APPLY in_stock PN_INCREMENT BY 1.0 |
->
) are deprecated.DELETE
to remove documents.Added
DQL_STRICT_MODE
as a system parameter to opt-out of requiring collection definitions (#16573)Changed
Fixed
Removed
network_use_nextgen_multihop_stack
(#16370)Performance
DittoTransaction
representing an active DQL transaction. (#15873) Added: DittoTransactionInfo
encapsulating information about a transaction. (#15873) Added: Method transaction()
on DittoStore
allowing a DQL transaction to be performed. (#15873) - DittoTransactionCompletionAction
representing an action to be taken upon the completion of a transaction: commit or rollback. (#15873) Added: An opt-in Android foreground service which allows Ditto to sync in the background. (#16097) Added: The new DittoDocumentPath::number
and DittoDocumentPath::numberValue
accessors. (#16776) Fixed: transport config changes that are made directly on the DittoTransportConfig
object that a Ditto
instance references are now applied when startSync
is called. (#16835) Fixed: WiFi Aware occasional failure to start advertising (#16844) Fixed: Transaction hints in log messages from calls to upsert()
included $name
instead of the actual collection name. (#SDKS-1012) Added: class DittoDiffer
, which calculates diffs between query results. This can be used with a store observer to understand how its results change over successive callbacks. (SDKS-981) Added: class DittoDiff
to represent diffs produced by the DittoDiffer
. (SDKS-981) Changed: Unify dedicated TCP servers across different transports (Multicast, mDNS, and WiFi Aware) by utilizing a single static TCP server implementation (#TRANS-131)